Personal computers are widely used in consumer and commercial environments. Personal computers include, but are not limited to, International Business Machines Corporation (IBM) and IBM-compatible computers which operate in a Windows.RTM. or OS/2.RTM. environment "IBM" and "OS/2" are trademarks of the International Business Machines Corporation of New York and "Windows" is a trademark of Microsoft Corporation of Redmond, Wash.) Personal computers can also include workstations operating in a Unix.RTM. or other environment. As is well known to those having skill in the art, a personal computer includes a central processing unit (also referred to as a "system unit") and a user interface that is responsive to user input and to the central processing unit. The user interface generally includes a display, a keyboard, and a pointing device such as a mouse. The personal computer also includes persistent storage, such as a hard disk drive, that stores programs and data. An operating system, such as Windows 95.RTM., OS/2.RTM. or Unix.RTM., is also stored in the persistent storage (Unix is a registered trademark of UnixSystem Laboratories Inc.). A plurality of application programs, such as computer games or an office suite, are also generally stored in the persistent storage.
Personal computers also may include a network interface application that communicates with a server over a network. The network interface application may be an Internet interface that communicates with the Internet using Hyper Text Transfer Protocol (HTTP) or other protocols. Examples of network interface applications include Netscape.RTM. Navigator.RTM. and Microsoft.RTM. Internet Explorer.RTM. ("Netscape" and "Navigator" are registered trademarks of Netscape Communications Corporation of California; and "Microsoft" and "Internet Explorer" are registered trademarks of Microsoft Corporation of Redmond, Wash.)
As personal computers and their application programs become more sophisticated, it is becoming increasingly clear that their total cost of ownership, including hardware and software maintenance and upgrades, may be much larger than the initial cost of the hardware and software itself. In fact, up to $35,000 or more may be spent annually to maintain each personal computer in a corporate environment.
Network computers have been proposed in order to reduce this overall cost of ownership. Network computers generally do not require a user or administrator to install software on the computer. Rather, all software is loaded from a network server when the network computer is started or when needed during a session. The overall specifications for network computers are described in a document entitled Profile Definition: Network Computer, X/Open, Document Number: X975, published by The Open Group, Berkshire, United Kingdom (UK) (1997), the disclosure of which is hereby incorporated herein by reference. Network computers have presently been announced and/or shipped by IBM Corp. (Network Station, Series 100, 300 and 1000), Sun Microsystems (Java Station), Oracle (N.C.), Neoware (Neostation), Wyse (Winterm), Acom (Netstation) and Corel Computer Corp. (Corel Video Network Computer).
Programs for network computers are typically written in Java. As is well known to those having skill in the art, Java programs, in compiled form, are generally portable and will generally run on a wide range of computers and operating systems. Java programs support referencing Universal Resource Locator (URL) identifiers with content types of audio/basic, audio/x-wav, image/gif and image/jpeg. Java provides a machine dependent desktop for executing machine independent applets.
Network computers are also known as "diskless computers" because they generally do not include persistent storage such as a floppy disk, hard disk or Compact Disk-Read Only Memory (CD-ROM). Due to the lack of persistent storage, all programs and data, except for a small loading program, are obtained from the server.
FIG. 1 is a simplified block diagram of a network computer that is connected to a server using an Internet connection. As shown in FIG. 1, network computer 100 includes a central processing unit 102 (also referred to as a "system unit") and a user interface, including a display 104, a keyboard 106, and a pointing device (mouse) 108. As is also shown in FIG. 1, the network computer does not generally include persistent storage for storing programs and data. A limited amount of volatile storage such as Random Access Memory (RAM) may be used to temporarily store applications and data while the network computer is running, but this volatile storage loses its information when the network computer is turned off. The network computer may also include permanent storage such as Read Only Memory, which may store a URL identifier to identify the server with which the computer works. The permanent storage may also include a base key which is used for security purposes.
Network computes 100 also includes a network interface 110 that allows the computer to communicate with a server 120 using a network 130, such as the Internet. Server 120 generally includes Web, Dynamic Host Configuration Protocol (DHCP), Network File System (NFS) and Trivial File Transfer Protocol (TFTP) servers. The server 120 also stores operating system images and a Java Runtime Environment (JRE). A Java desktop and other applications may also be included. Other non-Java related applications may also be included.
By providing for centralized application management at the server, network computers may reduce the management time for a computer network. Furthermore, because the applications of a network computer are centrally managed, a user may move from location to location within the network and still have available the same applications. However, because a network computer has no removable or local mass storage such as hard disk, CDROM or floppy disk drives, specific information about a user, such as power management preferences, screen saver preferences and the like are not readily transportable from machine to machine or network to network.
As an example, conventional power management uses hardware and software facilities of a computer system to minimize the average energy dissipated by a computer system. Thus, power management systems typically provide this capability by monitoring the demand for resources in a system and by "powering up" or "powering down" resources based on system requirements and demand. However, by manipulating the power available to resources, power management can interfere with a user's operation of the computer system. Thus, most power management systems typically monitor usage of the computer through, for example, keystrokes or mouse movement in combination with a timer to deactivate resources after a specified period of time. However, such simple monitoring of computer use may often result in deactivation of resources which a user still wishes and so a time delay is experienced by the user while the resources are reactivated.
The timers and the actions taken in performing power management are often established by user input and stored for a given machine. These timers are typically fixed in duration by user input and, once set, remain fixed irrespective of the use or actions taken by the user until further user input changes them. However, even though such preferences may be set by user input, in the network computer environment, such user preferences typically cannot be stored by the network computer because of its lack of local persistent storage. Furthermore, while network computers allow greater mobility to a user as to which computer system the user would utilize, power management preferences are typically not transportable with the user.
Thus, in light of the above discussion, a need exists for improvement in power management in a network computer environment.